/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.velocityme.session;

import com.velocityme.entity.Node;
import com.velocityme.entity.Activity;
import java.util.Collection;
import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author rcrida
 */
@Local
public interface TreeLocal {

    void moveChildNode(KeyLocal key, Node targetNode, Node childNode);

    boolean isValidPasteNode(KeyLocal key, Node targetNode, Node childNode);

    Collection<Node> getBookmarkNodes(KeyLocal key);

    List<Node> getVisibleAncestorNodes(KeyLocal key, Node node);

    void deleteNodeLink(KeyLocal key, Long nodeId, Long otherNodeId);

    void createNodeLink(KeyLocal key, Long nodeId, Long otherNodeId);

    boolean isValidLinkNode(KeyLocal key, Node node, Node otherNode);

    Collection<Node> getVisibleChildrenNodes(KeyLocal key, Node node);

    Collection<Node> getVisibleSiblingNodes(KeyLocal key, Node node);

    Collection<Node> getVisibleLinkedNodes(KeyLocal key, Node node);

    Collection<Node> getVisibleDependencyTasks(KeyLocal key, Activity task);

    Collection<Node> getVisibleDependantTasks(KeyLocal key, Activity task);
    
}
